ci: pull upstream ecosystem-ref fixes (bokeh, jrnl-org) + fork-side Windows libclang exclude - #99
Merged
Merged
Conversation
Summary -- Ecosystem checks started failing this morning for a missing branch, for example: https://github.com/astral-sh/ruff/actions/runs/29745997326/job/88364078381?pr=26770 main now seems to be their default branch: https://github.com/jrnl-org/jrnl Test Plan -- Second commit with a small whitespace change to trigger an ecosystem run
Fork-side fix, NOT an upstream cherry-pick — ruff_cpp_spo does not exist upstream, so there is no upstream commit addressing this. cargo-test-other's `cargo nextest run --all-features --profile ci` turns on ruff_cpp_spo's `libclang` feature on windows-latest too. The `clang` crate dlopens libclang at runtime there, and every libclang-backed test aborts with 0xc0000005 (Invalid access to memory location) instead of failing cleanly — confirmed via the windows-latest job logs on run 32106599591 (six ABORTs, all under ruff_cpp_spo::clang_walker / libclang_tests). macos-latest runs the same tests successfully, so this excludes only the Windows leg rather than dropping --all-features workspace-wide.
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_42050244-41a4-423a-84b0-d581b98cc9d5) |
AdaWorldAPI
marked this pull request as ready for review
August 18, 2026 06:55
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
3 tasks
AdaWorldAPI
pushed a commit
that referenced
this pull request
Aug 18, 2026
Real CI on the catch-up PR (#100) surfaced two findings on the Windows ruff_cpp_spo exclusion added in #99, neither of which the local prek gate could catch at the time (zizmor's own audit needs outbound GitHub API access this sandbox's proxy denies — confirmed 403, same failure mode either way): - zizmor: medium-severity template-injection finding — interpolating `${{ matrix.platform }}` directly into a `run:` shell block substitutes before bash ever sees the script, so a value containing shell metacharacters could break out of the string context. Has a documented auto-fix: pass through `env:` instead. - actionlint/shellcheck SC2193 on the same line, which the env-var form also resolves (shellcheck sees a normal `"$VAR" == pattern` comparison rather than a literal it can statically reason wrongly about). matrix.platform itself is not attacker-controlled here (a static 2-value list gated on `github.repository`), but the fix is correct regardless of that — env-var passing is the general mitigation for this class of finding, not a per-instance judgment call.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to the two non-required CI failures flagged (and left unfixed) while landing PRs #94/#96/#97/#98: the
ecosystemjob's project errors and thecargo test (windows-latest)crash. Investigated both againstastral-sh/ruffupstream before touching anything, per this repo's own "measure before claiming a fix exists" discipline.1. Two real upstream cherry-picks (clean, no conflicts)
The
ecosystemjob reported 5 project errors. Two of them are stale branch refs this repo inherited at fork time and upstream has since fixed:67ffd19e—ruff-ecosystem: bump bokeh/bokeh branch to branch-3.10 (#26987)(wasbranch-3.3, deleted upstream)bd75eb1c—Update branch for jrnl (#27007)(wasdevelop, renamed tomain)Confirmed via the exact CI log text on this fork (job
95614539452, PR run32105673308):Cherry-picked verbatim (
git cherry-pick), touching onlypython/ruff-ecosystem/ruff_ecosystem/defaults.pyandscripts/check_ecosystem.py— no other files, no unrelated upstream drift pulled in.The other 3 of the 5 ecosystem errors are NOT upstream-fixable and are intentionally left alone:
rotki/rotkiandindico/indicoreferenceRUF105in their own config, a rule that does not exist in this fork at all (git grepconfirms zero hits; it exists upstream innoqa_comments.rs). Porting it is a real new-rule addition, not a ref bump.python-trio/trioreferences the selectorbuiltin-argument-shadowing(the human-readable rule name, not its codeA002). Upstream resolves that via a preview-gated "human-readable rule names" feature (is_human_readable_names_enabled,Rule::from_name,UnresolvedRuleSelector::resolve) that is entirely absent from this fork (git grep= zero hits).Both are legitimate feature ports, not cherry-picks, and out of scope here — noted so they aren't silently dropped.
2. Fork-side fix: exclude
ruff_cpp_spofrom--all-featureson WindowsThis is NOT an upstream cherry-pick —
ruff_cpp_spois a fork-only crate (C++ SPO/transcode harvest arm) that doesn't exist upstream, so there is no upstream commit addressing it.cargo-test-other'scargo nextest run --all-features --profile citurns onruff_cpp_spo'slibclangfeature onwindows-latesttoo. Theclangcrate dlopens libclang at runtime there, and every libclang-backed test aborts with0xc0000005(Invalid access to memory location) instead of failing cleanly — confirmed via job95617262943on run32106599591(6 ABORTs, all underruff_cpp_spo::clang_walker::*/libclang_tests::*).macos-latestruns the identical tests successfully.Excludes
ruff_cpp_spofrom both the nextest run and the doctest run, Windows-only, rather than dropping--all-featuresworkspace-wide or touching macOS.Test plan
git diffconfirms only the two intended lines changed in the ecosystem-ref cherry-pickspython3 -c "import yaml; yaml.safe_load(...)"— CI workflow YAML parsesuvx prek run --from-ref origin/main --to-ref HEAD— all hooks pass exceptzizmor, which fails identically against the unmodified upstreamorigin/maincopy ofci.yamlin this sandbox (403 fromgithub.laiyagushi.com/ghapi/advisories, no outbound GitHub API access here) — confirmed environmental, not caused by this diffKept as a separate branch, not merged into the drill-loop work landed in #94/#96/#97/#98.
Generated by Claude Code